package exterminatorjeff.undergroundbiomes.api.names; import exterminatorjeff.undergroundbiomes.api.common.UBStairs; import net.minecraft.block.Block; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.statemap.IStateMapper; import net.minecraft.item.Item; import net.minecraft.util.EnumFacing; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.common.registry.GameRegistry; /** * * @author LouisDB * */ public class StairsEntry extends Entry<UBStairs> { public StairsEntry(StoneEntry baseStoneEntry) { super(baseStoneEntry.internalName + "_stairs"); baseStoneEntry.stairs = this; } public Item getItemBlock() { return getThing().toItem(); } public Block getBlock(EnumFacing facing) { if (facing != EnumFacing.UP && facing != EnumFacing.DOWN) return getThing().getBlock(facing); throw new RuntimeException("Stairs cannot be facing " + facing + "!"); } protected UBStairs stairs() { return getThing(); } @Override protected void doRegister() { getItemBlock().setUnlocalizedName(internalName); GameRegistry.register(getItemBlock().setRegistryName(internalName)); for (EnumFacing facing : EnumFacing.HORIZONTALS) { String name = internalName + "_" + facing; Block block = getBlock(facing); block.setUnlocalizedName(name); GameRegistry.register(block.setRegistryName(name)); } } @Override protected void doRegisterModel(IStateMapper stateMapper) { for (EnumFacing facing : EnumFacing.HORIZONTALS) ModelLoader.setCustomStateMapper(getBlock(facing), stateMapper); for (int meta = 0; meta < stairs().getNbVariants(); ++meta) { ModelResourceLocation location = new ModelResourceLocation(externalName(internalName), stairs().getVariantName(meta)); ModelLoader.setCustomModelResourceLocation(getItemBlock(), meta, location); LOGGER.debug("Model location: " + location); } } }